home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 November
/
Macworld (1999-11).dmg
/
Shareware World
/
Utilities
/
User Interface
/
Golive [Font]
/
LaunchURL
/
Source
/
OC Extension.h
< prev
Wrap
Text File
|
1996-04-25
|
6KB
|
151 lines
/***************************************************
*
* Header file for OneClick extensions
*
***************************************************/
// added by DWC 4/25/96
#pragma once
// Need AppleEvent header for AEBuild call-backs
#include <AppleEvents.h>
//******** Constants *************************
// Script execution errors
enum { kErrNone, kErrGeneral, kErrNotFound, kErrParameter };
//******** Macros *************************
// Macros for calling call-back routines
#define GetValue(pXRef,value) (*pXRef->pGetValue)(value)
#define GetNumberValue(pXRef,value) (*pXRef->pGetNumberValue)(value)
#define GetStringValue(pXRef,value) (*pXRef->pGetStringValue)(value)
#define SetValueString(pXRef,value,hString) (*pXRef->pSetValueString)(value,hString)
#define DisposeValue(pXRef,value) (*pXRef->pDisposeValue)(value)
#define GetPString(pXRef,pString) (*pXRef->pGetPString)(pString)
#define ValueStringToPStr(pXRef,value,pString) (*pXRef->pValueStringToPStr)(value,pString)
#define PopupMenu(pXRef,hMenu,left,top,bottom,sSelection) (*pXRef->pPopupMenu)(hMenu,left,top,bottom,sSelection)
#define SelectCustom(pXRef,left,top,bottom,pMenuDefFn,fMakeGlobal) (*pXRef->pSelectCustom)(left,top,bottom,pMenuDefFn,fMakeGlobal)
#define SendAppleEvent(pXRef,pEvent) (*pXRef->pSendAppleEvent)(pEvent)
#define SendAEResult(pXRef,pEvent,fReturnResult) (*pXRef->pSendAEResult)(pEvent,fReturnResult)
#define pAEBuild(pXRef,dst,src) (*pXRef->pAEBuild)(dst,src)
#define pAEBuildParameters(pXRef,pEvent,format) (*pXRef->pAEBuildParameters)(value,pEvent,format)
#define pAEBuildAppleEvent(pXRef,theClass,theID,addressType,addressData,addressLength,returnID,transactionID,result,paramsFmt) (*pXRef->pAEBuildAppleEvent)(theClass,theID,addressType,addressData,addressLength,returnID,transactionID,result,paramsFmt)
//******** Structs *************************
// Used to pass values during execution of a script. Can contain a number or a string.
typedef struct
{
enum { tNOVALUE, tNUMBER, tSTRING, tSCRIPT, tTAG } type;
long number; // For numbers
Ptr p; // For strings/tag
long len; // " "
Handle h; // For temporary strings
Handle hClipboard;
short scrapCount;
} valueRec;
// Used to output text or clicks to the application
typedef struct
{
enum { tNONE, tTYPE, tCLICK, tTYPECOMMAND, tSuspendResume } type;
Ptr p; // for Type
long len; // " "
long position; // " "
Handle h; // " " (used only for a temporary value)
} OutputRec;
// Stack element for calling another script
typedef struct
{
Handle hScript;
Byte *pScript;
Byte *pNextCommand;
short LoopIdx;
Point ButtonBottom,ButtonTop;
Handle LocalVars,hAppVars;
char HandleState;
Boolean fNoInterrupts;
WindowPeek wPtr;
Handle hBar;
short button;
Boolean fScheduled;
Boolean fStartup;
Boolean fStaticVarsChanged;
Handle hASResult;
Handle hStaticVars;
unsigned char sListDelimiter[2];
short cursor;
GrafPtr pDrawPort; // Port to draw to
Byte *pThisCommand; // Point to beginning of this line
short specialSchedule;
Boolean fNoDialogs;
Boolean fIgnoreClicks;
long ticksPause;
short modifiers;
RgnHandle hUpdate;
Handle hDragAndDrop;
OutputRec output;
} ScriptStackRec;
typedef struct
{
short Type; // Type of keyword
short Token; // Token
short index; // Index for string arrays
Handle hCode; // Handle to code
short File; // Offset to file data
OSType creator; // File creator
long CSResult; // Keep Control Strip result
long CSFeatures; // Control strip features
} ExternalData;
typedef struct
{
short vRefNum; // Volume refnum of resource file
long dirID; // Directory ID of resource file
Str255 fileName; // Filename of resource file
} FileData;
// Passed to externals
typedef struct
{
valueRec *pValue; // Value passed in or out (functions pass values out, system variables pass either way)
Boolean fSet; // Set (not get) system variable
ScriptStackRec *pScript; // Pointer to script info
OutputRec *pOutput; // Pointer to output record
EventRecord **ppEvent; // Pointer to event record pointer
Boolean *pExit; // Pointer to exit flag
FileData *pFileData; // Pointer to references for resource file
Boolean *pInterruptScript; // This field is no longer used
// Callback routines
pascal Boolean (*pGetValue)(valueRec *); // Pointer to callback routine to get a value
pascal Boolean (*pGetNumberValue)(valueRec *); // Pointer to callback routine to get a numeric value
pascal Boolean (*pGetStringValue)(valueRec *); // Pointer to callback routine to get a string value
pascal Boolean (*pGetPString)(StringPtr); // Pointer to callback routine to get a Pascal string value
pascal void (*pSendAppleEvent)(void *pTheEvent); // Callback routines to send an AppleEvent
long *pError; // Pointer to last error
// Pointer to callback routine to convert a string value to a Pascal string
pascal void (*pValueStringToPStr)(valueRec *value,StringPtr sValue);
pascal void (*pDisposeValue)(valueRec *value);
pascal void (*pSendAEResult)(void *pTheEvent, Boolean fReturnResult); // Callback routines to send an AppleEvent
pascal short (*pPopupMenu)(MenuHandle hMenu,short left,short top,short bottom, unsigned char *s);
pascal short (*pSelectCustom)(short left, short top, short bottom, ProcPtr pMenuDefFn, Boolean fMakeGlobal);
pascal void (*pSetValueString)(valueRec *pValue, Handle h);
OSErr (*pAEBuild)(AEDesc *dst, const char *src, ...);
OSErr (*pAEBuildParameters)(AppleEvent *event, const char *format, ...);
OSErr (*pAEBuildAppleEvent)(AEEventClass theClass, AEEventID theID,
DescType addressType, const void *addressData, long addressLength,
short returnID, long transactionID, AppleEvent *result,
const char *paramsFmt, ...);
ExternalData **hXExternalData;
short *pNumExternals;
} ExternalParameterRec;